package com.headFirstModel.factoryPattern.simpleFactory;

/**
 * 一家披萨店：
 *         利用简单工厂模式:解决 披萨类型改变引发的耦合问题
 * 多家不同的披萨加盟店:每家披萨店的生产工艺有差异，怎么办？工厂方法
 */
public class PizzaSotre {
    SimpleFactoryPizza simpleFactoryPizza;

    public PizzaSotre(SimpleFactoryPizza simpleFactoryPizza){
        this.simpleFactoryPizza=simpleFactoryPizza;
    }

    /**
     * 生产披萨
     * @param type
     * @return
     */
    Pizza orderPizza(String type){
        Pizza pizza=simpleFactoryPizza.createPizza(type);
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();
        return pizza;
    }
}
